<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="zh" xml:lang="zh" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Concept: 规约化</title>
<meta name="uma.type" content="Concept">
<meta name="uma.name" content="normalization">
<meta name="uma.presentationName" content="规约化">
<meta name="element_type" content="concept">
<meta name="filetype" content="description">
<meta name="role" content="">
<link rel="StyleSheet" href="./../../../css/default.css" type="text/css">
<script src="./../../../scripts/ContentPageResource.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageSubSection.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/ContentPageToolbar.js" type="text/javascript" language="JavaScript"></script><script src="./../../../scripts/contentPage.js" type="text/javascript" language="JavaScript"></script><script type="text/javascript" language="JavaScript">
					var backPath = './../../../';
					var imgPath = './../../../images/';
					var nodeInfo=null;
					contentPage.preload(imgPath, backPath, nodeInfo,  '', false, false, false);
				</script>
</head>
<body>
<div id="breadcrumbs"></div>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td valign="top"><a name="Top"></a>
<div id="page-guid" value="3.183357382287462E-306"></div>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tr>
<td class="pageTitle" nowrap="true">Concept: 规约化</td><td width="100%">
<div align="right" id="contentPageToolbar"></div>
</td><td width="100%" class="expandCollapseLink" align="right"><a name="mainIndex" href="./../../../index.htm"></a><script language="JavaScript" type="text/javascript" src="./../../../scripts/treebrowser.js"></script></td>
</tr>
</table>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="pageTitleSeparator"><img src="./../../../images/shim.gif" alt="" title="" height="1"></td>
</tr>
</table>
<div class="overview">
<table width="97%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="50"><img src="./../../../images/concept.gif" alt="" title=""></td><td>
<table class="overviewTable" border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top">规约化是这样一个过程：将复杂的数据结构削减到其最简单且最稳定的形式，从而将冗余降到最低程度。</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Relationships</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<th class="sectionTableHeading" scope="row">Related Elements</th><td class="sectionTableCell">
<ul>
<li>
<a href="./../../../rup/domains/analysis_and_design_BD3BBB1D.html" guid="_kjFBYN7HEdm8G6yT7-Wdqw">分析与设计</a>
</li>
<li>
<a href="./../../../rup/roles/rup_database_designer_524DC34F.html" guid="{87EE3BF5-17CA-4211-BD3D-32F361E58550}">数据库设计员</a>
</li>
</ul>
</td>
</tr>
</table>
</div>
<div class="sectionHeading">Main Description</div>
<div class="sectionContent">
<table class="sectionTable" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td class="sectionTableSingleCell"><a id="Top" name="Top"></a> 
<h3>
    <a id="Introduction" name="Introduction">简介</a>
</h3>
<p>
    此概念文档简单讨论了数据规约化主题，并适用于<a class="elementLinkWithType" href="./../../../rup/workproducts/rup_data_model_65B46980.html" guid="{9DCF1723-1A21-4F48-BEDE-DBC543489682}">Artifact: 数据模型</a>的开发。它不提供完整的规约化处理，因为该主题范围很广，并在关于数据库设计上的许多资料中都有记录。在 [<a class="elementLinkWithUserText" href="./../../../rup/customcategories/references_56F06DFD.html#NBG01" guid="7.755968586980351E-308">NBG01</a>]
    中，将规约化定义为“用于产生正确的关系数据库设计的一种分析技术”。实际上，规约化是一个通过应用限制性规则来消除数据模型中的冗余的过程。消除数据模型的表中的数据冗余有助于实现数据库中的数据的引用完整性。&nbsp;
</p>
<p>
    通常在已开发了模型中初始版本的表及它们的关系之后，对数据模型执行规约化。关于何时应用规约化的确切时间安排取决于项目的具体情况并由<a class="elementLink" href="./../../../rup/roles/rup_database_designer_524DC34F.html" guid="{87EE3BF5-17CA-4211-BD3D-32F361E58550}">数据库设计员</a>决定。使用一系列步骤将规约化过程应用到数据模型中的表，在每个步骤中应用比上条规则更严格的规则。&nbsp;
</p>
<h3>
    <a id="Levels of Normalization" name="Levels of Normalization"></a>规约化级别
</h3>
<p>
    按层次将规约化分类成数字形式，最常见的形式是第一、第二和第三范式。每个级别的规约化比前一级别更加严格。前三个层次级别的规约化是：
</p>
<ul>
    <li>
        <b>第一范式</b> － 已消除表中的几组重复的数据列，以便将数据组织成基本单元。
    </li>
    <li>
        <b>第二范式</b> － 数据已经是第一范式，并且已消除主键字段上的冗余，以便列值完全依赖于主键字段。
    </li>
    <li>
        <b>第三范式</b> － 数据已经是第二范式，并且每一列都不依赖于任何其他非键列。
    </li>
</ul>
<p>
    还有其他规约化级别，但本讨论中并没有涵盖。在 [<a class="elementLinkWithUserText" href="./../../../rup/customcategories/references_56F06DFD.html#DAT99" guid="7.755968586980351E-308">DAT99</a>]
    中可找到关于其他规约化级别的信息。数据库设计者必须根据项目特定情况，决定要应用到数据模型的确切规约化级别。
</p>
<p align="left">
    &nbsp;
</p></td>
</tr>
</table>
</div>
<table class="copyright" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="copyright"></td>
</tr>
</table>
</td>
</tr>
</table>
</body>
<script type="text/javascript" language="JavaScript">
				contentPage.onload();
			</script>
</html>
